package com.onyx.entity;

import java.io.Serializable;
import java.util.Date;

/**
 * 客户表
 * @TableName customer
 */
public class Customer implements Serializable {
    /**
     * 主键
     */
    private Long id;

    /**
     * 名字
     */
    private String name;

    /**
     * 公司地址
     */
    private String companyAddress;

    /**
     * 联系人
     */
    private String person;

    /**
     * 手机
     */
    private String phone;

    /**
     * 行业
     */
    private String profession;

    /**
     * 省份
     */
    private String province;

    /**
     * 城市
     */
    private String city;

    private Date createTime;

    /**
     * 负责人id
     */
    private Long userId;

    /**
     * 客户状态  0:新建完成   1:跟进中  2:即将成交   3:成交过的
     */
    private Integer customerState;

    /**
     * 竞争对手
     */
    private String competitor;

    /**
     * 客户备注
     */
    private String note;

    /**
     * 开户行
     */
    private String bankName;

    /**
     * 开户账号
     */
    private String bankNo;

    /**
     * 发票地址
     */
    private String billAddress;

    /**
     * 发票人
     */
    private String billPerson;

    /**
     * 发票手机号
     */
    private String billPhone;

    /**
     * 开票的备注
     */
    private String billNote;

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    public Long getId() {
        return id;
    }

    /**
     * 主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 名字
     */
    public String getName() {
        return name;
    }

    /**
     * 名字
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 公司地址
     */
    public String getCompanyAddress() {
        return companyAddress;
    }

    /**
     * 公司地址
     */
    public void setCompanyAddress(String companyAddress) {
        this.companyAddress = companyAddress;
    }

    /**
     * 联系人
     */
    public String getPerson() {
        return person;
    }

    /**
     * 联系人
     */
    public void setPerson(String person) {
        this.person = person;
    }

    /**
     * 手机
     */
    public String getPhone() {
        return phone;
    }

    /**
     * 手机
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }

    /**
     * 行业
     */
    public String getProfession() {
        return profession;
    }

    /**
     * 行业
     */
    public void setProfession(String profession) {
        this.profession = profession;
    }

    /**
     * 省份
     */
    public String getProvince() {
        return province;
    }

    /**
     * 省份
     */
    public void setProvince(String province) {
        this.province = province;
    }

    /**
     * 城市
     */
    public String getCity() {
        return city;
    }

    /**
     * 城市
     */
    public void setCity(String city) {
        this.city = city;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 负责人id
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * 负责人id
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * 客户状态  0:新建完成   1:跟进中  2:即将成交   3:成交过的
     */
    public Integer getCustomerState() {
        return customerState;
    }

    /**
     * 客户状态  0:新建完成   1:跟进中  2:即将成交   3:成交过的
     */
    public void setCustomerState(Integer customerState) {
        this.customerState = customerState;
    }

    /**
     * 竞争对手
     */
    public String getCompetitor() {
        return competitor;
    }

    /**
     * 竞争对手
     */
    public void setCompetitor(String competitor) {
        this.competitor = competitor;
    }

    /**
     * 客户备注
     */
    public String getNote() {
        return note;
    }

    /**
     * 客户备注
     */
    public void setNote(String note) {
        this.note = note;
    }

    /**
     * 开户行
     */
    public String getBankName() {
        return bankName;
    }

    /**
     * 开户行
     */
    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    /**
     * 开户账号
     */
    public String getBankNo() {
        return bankNo;
    }

    /**
     * 开户账号
     */
    public void setBankNo(String bankNo) {
        this.bankNo = bankNo;
    }

    /**
     * 发票地址
     */
    public String getBillAddress() {
        return billAddress;
    }

    /**
     * 发票地址
     */
    public void setBillAddress(String billAddress) {
        this.billAddress = billAddress;
    }

    /**
     * 发票人
     */
    public String getBillPerson() {
        return billPerson;
    }

    /**
     * 发票人
     */
    public void setBillPerson(String billPerson) {
        this.billPerson = billPerson;
    }

    /**
     * 发票手机号
     */
    public String getBillPhone() {
        return billPhone;
    }

    /**
     * 发票手机号
     */
    public void setBillPhone(String billPhone) {
        this.billPhone = billPhone;
    }

    /**
     * 开票的备注
     */
    public String getBillNote() {
        return billNote;
    }

    /**
     * 开票的备注
     */
    public void setBillNote(String billNote) {
        this.billNote = billNote;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        Customer other = (Customer) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
            && (this.getCompanyAddress() == null ? other.getCompanyAddress() == null : this.getCompanyAddress().equals(other.getCompanyAddress()))
            && (this.getPerson() == null ? other.getPerson() == null : this.getPerson().equals(other.getPerson()))
            && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone()))
            && (this.getProfession() == null ? other.getProfession() == null : this.getProfession().equals(other.getProfession()))
            && (this.getProvince() == null ? other.getProvince() == null : this.getProvince().equals(other.getProvince()))
            && (this.getCity() == null ? other.getCity() == null : this.getCity().equals(other.getCity()))
            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getCustomerState() == null ? other.getCustomerState() == null : this.getCustomerState().equals(other.getCustomerState()))
            && (this.getCompetitor() == null ? other.getCompetitor() == null : this.getCompetitor().equals(other.getCompetitor()))
            && (this.getNote() == null ? other.getNote() == null : this.getNote().equals(other.getNote()))
            && (this.getBankName() == null ? other.getBankName() == null : this.getBankName().equals(other.getBankName()))
            && (this.getBankNo() == null ? other.getBankNo() == null : this.getBankNo().equals(other.getBankNo()))
            && (this.getBillAddress() == null ? other.getBillAddress() == null : this.getBillAddress().equals(other.getBillAddress()))
            && (this.getBillPerson() == null ? other.getBillPerson() == null : this.getBillPerson().equals(other.getBillPerson()))
            && (this.getBillPhone() == null ? other.getBillPhone() == null : this.getBillPhone().equals(other.getBillPhone()))
            && (this.getBillNote() == null ? other.getBillNote() == null : this.getBillNote().equals(other.getBillNote()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
        result = prime * result + ((getCompanyAddress() == null) ? 0 : getCompanyAddress().hashCode());
        result = prime * result + ((getPerson() == null) ? 0 : getPerson().hashCode());
        result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode());
        result = prime * result + ((getProfession() == null) ? 0 : getProfession().hashCode());
        result = prime * result + ((getProvince() == null) ? 0 : getProvince().hashCode());
        result = prime * result + ((getCity() == null) ? 0 : getCity().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getCustomerState() == null) ? 0 : getCustomerState().hashCode());
        result = prime * result + ((getCompetitor() == null) ? 0 : getCompetitor().hashCode());
        result = prime * result + ((getNote() == null) ? 0 : getNote().hashCode());
        result = prime * result + ((getBankName() == null) ? 0 : getBankName().hashCode());
        result = prime * result + ((getBankNo() == null) ? 0 : getBankNo().hashCode());
        result = prime * result + ((getBillAddress() == null) ? 0 : getBillAddress().hashCode());
        result = prime * result + ((getBillPerson() == null) ? 0 : getBillPerson().hashCode());
        result = prime * result + ((getBillPhone() == null) ? 0 : getBillPhone().hashCode());
        result = prime * result + ((getBillNote() == null) ? 0 : getBillNote().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", name=").append(name);
        sb.append(", companyAddress=").append(companyAddress);
        sb.append(", person=").append(person);
        sb.append(", phone=").append(phone);
        sb.append(", profession=").append(profession);
        sb.append(", province=").append(province);
        sb.append(", city=").append(city);
        sb.append(", userId=").append(userId);
        sb.append(", customerState=").append(customerState);
        sb.append(", competitor=").append(competitor);
        sb.append(", note=").append(note);
        sb.append(", bankName=").append(bankName);
        sb.append(", bankNo=").append(bankNo);
        sb.append(", billAddress=").append(billAddress);
        sb.append(", billPerson=").append(billPerson);
        sb.append(", billPhone=").append(billPhone);
        sb.append(", billNote=").append(billNote);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}